//QT http 管理类

#ifndef HTTPMGR_H
#define HTTPMGR_H
#include <QString>
#include <QUrl>
#include <QObject>
#include <QNetworkAccessManager>
#include <QJsonObject>

#include "netglobal.h"

//http 客户端封装
class HttpMgr: public QObject, public std::enable_shared_from_this<HttpMgr>
{
    Q_OBJECT  //可以让 HttpMgr 类使用信号
public:
    HttpMgr();
    ~HttpMgr();

    /*
    发送 http 请求
    id：消息id
    mod: 消息模块
    */
    void PostHttpReq(QUrl url, QJsonObject json_date, ReqId id, Modules mod);

private:

private:
    QNetworkAccessManager _manager; //http管理类

private slots:
    //sig_http_finish 信号的槽函数
    void slot_http_finish(ReqId id, Modules mod,  ErrorCode err, QString res);

signals:
    //http 请求发送完成时发射该信号
    void sig_http_finish(ReqId id, Modules mod,  ErrorCode err, QString res);

    //http 收到服务器返回的 注册 模块信息时触发该信号
    void sig_reg_mod_finish(ReqId id, ErrorCode err, QString res);

    //http 收到服务器返回的 修改密码 模块信息时触发该信号
    void sig_reset_mod_finish(ReqId id, ErrorCode err, QString res);

    //http 收到服务器返回的 用户登录 模块信息时触发该信号
    void sig_login_mod_finish(ReqId id, ErrorCode err, QString res);
};

#endif // HTTPMGR_H
































